//////////////////////////////////////////////////////////////////
//                        COPYRIGHT NOTICE
// (c) Copyright 1998-2002 by Jeongnim Kim, Lars Jonsson and Seungwon Lee
//   All rights reserved.
//////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////
//                    CONTACT INFORMATION
//   Jeongnim Kim
//   National Center for Supercomputing Applications &
//   Materials Computation Center
//   University of Illinois, Urbana-Champaign
//   Urbana, IL 61801
//   e-mail: jnkim@ncsa.uiuc.edu
//   Tel:    217-244-6319 (NCSA) 217-333-3324 (MCC)
//
// Supported by 
//   National Center for Supercomputing Applications, UIUC
//   Materials Computation Center, UIUC
//   Department of Physics, Ohio State University
//   Ohio Supercomputer Center
//////////////////////////////////////////////////////////////////
// -*- C++ -*-
#ifndef ARPACKFUNCTIONS_H
#define ARPACKFUNCTIONS_H

#ifdef ADD_
#define ssaupd ssaupd_
#define sseupd sseupd_
#define dsaupd dsaupd_
#define dseupd dseupd_
#define znaupd znaupd_
#define zneupd zneupd_
#endif

extern "C" {

  void ssaupd(int *ido, const char *bmat, int *n, const char *which,
              int *nev, float *tol, float *resid,
              int *ncv, float *V, int *ldv,
              int *iparam, int *ipntr, float *workd,
              float *workl, int *lworkl, int *info);

  void dsaupd(int *ido, const char *bmat, int *n, const char *which,
              int *nev, double *tol, double *resid,
              int *ncv, double *V, int *ldv,
              int *iparam, int *ipntr, double *workd,
              double *workl, int *lworkl, int *info);

  void znaupd(int *ido, const char* bmat, int *n, const char* which,
              int *nev, double *tol, complex<double> *resid,
              int *ncv, complex<double> *V, int *ldv,
              int *iparam, int *ipntr, complex<double> *workd,
              complex<double> *workl, int *lworkl, double *rwork,
              int *info); 

  void sseupd(int *rvec, char *HowMny, int *select,
              float *d, float *Z, int *ldz,
              float *sigma, const char *bmat, int *n,
              const char *which, int *nev, float *tol,
              float *resid, int *ncv, float *V,
              int *ldv, int *iparam, int *ipntr,
              float *workd, float *workl,
              int *lworkl, int *info);

  void dseupd(int *rvec, char *HowMny, int *select,
              double *d, double *Z, int *ldz,
              double *sigma,  const char *bmat, int *n,
              const char *which, int *nev, double *tol,
              double *resid, int *ncv, double *V,
              int *ldv, int *iparam, int *ipntr,
              double *workd, double *workl,
              int *lworkl, int *info);

  void zneupd(int *rvec, const char* HowMny, int *select,
              complex<double> *d, complex<double> *Z, int *ldz,
              complex<double> *sigma, complex<double>* workev, 
              const char* bmat, int *n,
              const char* which, int *nev, double *tol, 
              complex<double>* resid, int* ncv, complex<double> *V,
              int *ldv, int *iparam, int *ipntr,
              complex<double> *workd, complex<double> * workl,
              int *lworkl, double *rwork, int *info); 

}
#endif

/***************************************************************************
 * $RCSfile: Arpackf.h,v $   $Author: jnkim $
 * $Revision: 1.1.1.1 $   $Date: 2004/07/23 21:04:02 $
 * $Id: Arpackf.h,v 1.1.1.1 2004/07/23 21:04:02 jnkim Exp $ 
 ***************************************************************************/

